/*
 * Copyright (c) 2017-present, CV4J Contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.cv4j.core.datamodel.lut;

/**
 * The filter which is varies the hue component of the hue-saturation-value color model.
 * The colors begin with red, pass through yellow, green, cyan, blue, magenta, and return to red.
 * The colormap is particularly appropriate for displaying periodic functions.
 * hsv(m) is the same as hsv2rgb([h ones(m,2)]) where h is the linear ramp, h = (0:m-1)'/m.
 * <p>
 * For more information please see:
 * <a target="_blank" href="http://baike.baidu.com/link?url=kysXstK853g0mEbTgPIdkrqO5qTTbgfW-B0O1FJP4MYYzp
 * G5_6E_LlaP_6T9XTn2c97Ge6hJUojJzkppCdnO-mJxIee_XsNASTsy82RaQZe">About ColorMap</a> <p>
 * Or see:
 * <a target="_blank" href="http://matlab.izmiran.ru/help/techdoc/ref/colormap.html">MATLAB Function Reference - colormap</a>
 *
 */
public class HsvLUT {

    public static  int[][] HSV_LUT = new int[][]{
            {253, 1, 0}, {255, 6, 0}, {255, 11, 1}, {254, 17, 1}, {255, 24, 1},
            {255, 30, 0}, {254, 36, 0}, {255, 42, 0}, {254, 48, 0}, {255, 54, 0},
            {254, 60, 0}, {254, 67, 0}, {255, 73, 0}, {254, 79, 0}, {254, 84, 0},
            {255, 90, 0}, {255, 97, 0}, {255, 102, 0}, {255, 108, 2}, {255, 113, 1},
            {255, 120, 0}, {255, 126, 0}, {255, 133, 0}, {255, 138, 0}, {255, 144, 0},
            {255, 150, 0}, {255, 156, 0}, {254, 162, 0}, {255, 169, 0}, {254, 175, 0},
            {255, 180, 0}, {255, 185, 0}, {255, 192, 0}, {255, 197, 0}, {255, 203, 1},
            {255, 210, 2}, {255, 216, 0}, {255, 222, 0}, {255, 229, 0}, {255, 234, 0},
            {255, 240, 1}, {253, 245, 0}, {252, 248, 1}, {246, 251, 0}, {243, 252, 1},
            {239, 254, 1}, {235, 255, 0}, {229, 255, 0}, {222, 255, 0}, {215, 255, 0},
            {209, 255, 0}, {204, 255, 0}, {198, 255, 0}, {190, 255, 0}, {185, 255, 1},
            {180, 255, 0}, {174, 255, 0}, {168, 255, 0}, {163, 254, 0}, {155, 255, 0},
            {150, 255, 0}, {144, 255, 0}, {138, 255, 1}, {132, 255, 0}, {125, 255, 0},
            {120, 255, 0}, {114, 255, 0}, {108, 255, 0}, {101, 255, 0}, {95, 255, 0},
            {90, 255, 2}, {84, 255, 0}, {78, 255, 0}, {71, 255, 0}, {67, 254, 0},
            {60, 255, 0}, {54, 255, 0}, {48, 255, 0}, {41, 255, 1}, {36, 255, 0},
            {30, 255, 0}, {24, 255, 0}, {18, 255, 0}, {11, 255, 0}, {7, 254, 0},
            {1, 254, 3}, {0, 254, 6}, {0, 255, 11}, {0, 255, 19}, {0, 255, 24},
            {0, 255, 31}, {1, 255, 37}, {1, 255, 45}, {1, 254, 49}, {0, 255, 55},
            {0, 255, 61}, {0, 255, 67}, {0, 255, 73}, {0, 255, 79}, {0, 255, 83},
            {0, 255, 91}, {1, 255, 97}, {1, 255, 104}, {0, 255, 109}, {0, 255, 115},
            {0, 255, 120}, {0, 255, 127}, {0, 255, 133}, {0, 254, 140}, {1, 254, 145},
            {0, 255, 151}, {0, 254, 156}, {0, 255, 163}, {1, 255, 169}, {0, 255, 175},
            {0, 254, 181}, {0, 255, 187}, {1, 255, 193}, {1, 255, 201}, {1, 255, 205},
            {0, 255, 213}, {1, 255, 218}, {0, 255, 225}, {1, 255, 229}, {1, 254, 236},
            {2, 254, 241}, {0, 253, 243}, {0, 251, 246}, {0, 247, 249}, {1, 245, 253},
            {0, 240, 253}, {0, 234, 253}, {0, 228, 255}, {0, 222, 255}, {0, 216, 255},
            {0, 210, 255}, {0, 205, 255}, {0, 199, 255}, {0, 193, 255}, {0, 187, 255},
            {0, 179, 254}, {1, 173, 255}, {0, 168, 255}, {0, 162, 255}, {0, 156, 255},
            {0, 150, 255}, {0, 145, 254}, {0, 140, 255}, {0, 131, 255}, {0, 126, 255},
            {0, 120, 255}, {0, 114, 255}, {0, 107, 255}, {0, 102, 255}, {0, 96, 255},
            {0, 90, 255}, {1, 83, 255}, {1, 77, 255}, {1, 71, 255}, {1, 66, 255},
            {0, 59, 255}, {0, 55, 255}, {0, 48, 255}, {0, 43, 254}, {1, 35, 254},
            {1, 30, 254}, {1, 23, 255}, {1, 18, 255}, {0, 12, 255}, {0, 7, 255},
            {0, 1, 252}, {6, 0, 254}, {12, 1, 255}, {17, 0, 254}, {26, 0, 255},
            {30, 0, 254}, {37, 0, 254}, {42, 1, 255}, {47, 0, 254}, {52, 1, 254},
            {60, 0, 254}, {66, 1, 253}, {72, 1, 255}, {77, 0, 254}, {83, 0, 254},
            {90, 0, 254}, {96, 0, 255}, {102, 1, 255}, {109, 0, 254}, {113, 0, 254},
            {120, 0, 255}, {126, 1, 255}, {132, 1, 255}, {137, 0, 254}, {144, 0, 255},
            {148, 1, 255}, {156, 1, 255}, {161, 0, 252}, {167, 0, 254}, {174, 0, 255},
            {180, 0, 255}, {186, 1, 255}, {191, 0, 255}, {197, 0, 255}, {205, 0, 255},
            {210, 0, 255}, {216, 1, 255}, {220, 0, 254}, {227, 0, 255}, {232, 1, 253},
            {238, 1, 255}, {242, 1, 253}, {246, 0, 249}, {250, 0, 247}, {253, 0, 243},
            {255, 0, 240}, {255, 0, 234}, {255, 0, 228}, {255, 1, 222}, {254, 1, 214},
            {254, 0, 210}, {253, 0, 204}, {255, 0, 200}, {255, 0, 194}, {254, 0, 186},
            {254, 1, 180}, {254, 0, 174}, {253, 0, 168}, {255, 0, 162}, {255, 0, 154},
            {255, 0, 150}, {255, 0, 144}, {254, 0, 137}, {254, 0, 132}, {255, 0, 128},
            {254, 1, 120}, {255, 0, 114}, {255, 0, 108}, {255, 0, 102}, {255, 0, 96},
            {255, 0, 91}, {255, 0, 84}, {255, 0, 78}, {254, 0, 72}, {255, 0, 66},
            {254, 1, 58}, {255, 0, 54}, {255, 0, 48}, {255, 0, 41}, {255, 0, 36},
            {255, 0, 32}, {255, 0, 24}, {255, 0, 18}, {255, 0, 12}, {255, 0, 6},
            {254, 0, 3}
    };

}
